package aplicacion.modelo.gestores;

import aplicacion.modelo.*;
import java.util.ArrayList;

/** Clase Modelo Polígono.
 * Gestor encargado del manejo del control de flujo de información de los polígonos,
 * gestiona la creación, inclusión y búsqueda de polígonos dentro del sistema.
 *
 * @author Ileana Natalia Díaz Palacios
 * Programación III
 * Universidad Nacional
 * 
 */
public class ManejadorPoligonos {

    //<editor-fold defaultstate="collapsed" desc="Construtores">
    public ManejadorPoligonos() {
        poligonos = new ArrayList<Poligono>();
    }
    //</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="Metodos de Gestión">
    public void agregarPoligono(Poligono agregar) {
        poligonos.add(agregar);
    }

    public Poligono getPoligono(Integer index) {
        return poligonos.get(index);
    }

    public ArrayList<Poligono> getPoligonos() {
        return poligonos;
    }

    public Poligono getPoligono(String nombre) {
        for (Poligono buscar : poligonos) {
            if (buscar.getNombre().equals(nombre)) {
                return buscar;
            }
        }
        return null;
    }

    public Poligono crearPoligono(String nombre, Integer tipoRelleno, Integer[] color, String relleno, ArrayList<Punto> vertices) {
        return new Poligono(nombre, tipoRelleno, color, relleno, vertices);
    }

    public Poligono crearPoligono() {
        return new Poligono();
    }
    //</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="Metodos de Control de Carga">
    public void guardar(String ruta) {
        ManejadorCargaPoligonos.obtenerInstancia().guardarXML(ruta, poligonos);
    }

    public void cargar() {
        poligonos = ManejadorCargaPoligonos.obtenerInstancia().cargarXML();
    }
    //</editor-fold>
    
    //<editor-fold defaultstate="collapsed" desc="Variables">
    //Vector de Poligonos
    private ArrayList<Poligono> poligonos;
    //</editor-fold>
}
